⚡️ Speed up function is_repo_a_fork by 40% in PR #371 (chore/error-on-missing-key-in-fork)
#372
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
⚡️ This pull request contains optimizations for PR #371
If you approve this dependent PR, these changes will be merged into the original PR branch
chore/error-on-missing-key-in-fork.📄 40% (0.40x) speedup for
is_repo_a_forkincodeflash/code_utils/env_utils.py⏱️ Runtime :
50.5 microseconds→36.0 microseconds(best of91runs)📝 Explanation and details
Here’s a faster version, making these improvements.
os.getenv()andPath.open()for the same event file, by using an explicit cache variable for the file contents. This accelerates repeated lookups and reduces disk accesses.get_cached_gh_event_data()will not change for a process lifetime and can be memory-cached explicitly.is_repo_a_forklogic by removing an unnecessary bool(...) coercion (the value is already True/False).Here’s the rewritten program.
Key notes:
Let me know if you want further micro-optimizations!
✅ Correctness verification report:
🌀 Generated Regression Tests and Runtime
To edit these changes
git checkout codeflash/optimize-pr371-2025-06-24T00.35.01and push.